{T}

变量、长期记忆:简单高效提升 Bot 的长期记忆

在人工智能时代,聊天机器人(Bot)已经成为了我们生活中不可或缺的一部分。无论是客服、销售还是个人助理,Bot 正在各个领域发挥着重要作用。但是,如何让 Bot 更加智能、人性化,提供更加个性化的服务,是摆在开发者面前的一大挑战。

变量长期记忆,就是应对这一挑战的两大利器。通过变量,我们可以让 Bot 记住并灵活运用用户的个人信息;通过长期记忆,我们可以让 Bot 形成连贯的对话理解和个性化的交互策略。即便你不是技术背景出身,掌握变量和长期记忆的使用,也可以轻松打造出一个懂你、理解你的智能 Bot。

本文将专门为非技术从业者讲解变量和长期记忆的基本概念和使用方法。通过几个实际的案例,手把手教你如何利用变量和长期记忆。

什么是变量?

提到变量,也许你会想起学生时代数学课上的 x、y、z,比如y=x+1。没错,编程中的变量与之类似,它就像一个带名字的容器,用来存储各种类型的数据,供程序在运行过程中调用和修改。

在 Bot 开发中,变量的作用主要体现在两个方面:记录用户信息和控制对话流程

比如,当用户第一次使用你的问候 Bot 时,Bot 会问:“你好,我是你的智能问候助手,请问怎么称呼你?”用户回复:“我叫小明。”这时,你就可以创建一个名为 user_name 的变量,将 "小明" 这个值存储起来。下次用户再来问候时,Bot 就可以直接说:“小明,欢迎回来!很高兴再次见到你。” 是不是感觉贴心了许多?

再比如,你可以创建一个名为 user_visits 的变量,记录用户访问 Bot 的次数。第一次访问时设为 1,以后每次访问就加 1。这样,你就可以根据访问次数,设置不同的欢迎语,比如“欢迎第一次使用我的服务”“很高兴您再次光临”等等,让 Bot 的回复更加人性化。

在扣子平台,创建和管理变量的过程非常简单:

  1. 进入目标 Bot 的编排页面,找到变量功能;
  2. 单击 + 按钮,在编辑变量对话框内设置变量名称、默认值和描述;
  3. 单击保存,变量创建完成。

值得一提的是,扣子平台还提供了一些系统预设变量,比如 sys_uuid 可以获取用户的唯一标识,sys_longitudesys_latitude 可以获取用户的地理位置信息。这些预设变量是只读的,可以让你的 Bot 更加智能地服务用户,当然,你要使用的时候需要开启操作的按钮才能使用。

那么,变量是如何匹配用户对话内容的呢?其实,在与用户对话时,Bot 的大模型能力会自动识别与变量匹配的内容,并将内容保存至变量内。

如果变量开启了提示词访问,你也可以在 Bot 的人设与提示词中,指定变量的具体使用场景。

在 Bot 详情页右侧预览与调试区域,你可以调试 Bot 并查看变量的使用效果。 在预览与调试区域右上角的 “Memory > 变量” 中查看保存的数据。

注意:

  • 如果用户更新了数据(例如,用户在会话内提供了新的用户名),则 Bot 会自动修改变量为最新值。
  • 如果变量被删除,则变量内保存的用户数据也会被删除。

实例演示

下面,我们来看一个利用变量打造个性化问候的完整案例。

  1. 创建 user_namevisit_times 两个变量,分别表示用户姓名和访问次数;

  2. 在问候 Bot 的提示词中加入以下逻辑:

    • 如果 visit_times = 1,说"你好,我是你的智能问候助手,请问怎么称呼你?"
    • 如果 visit_times > 1:
      • 如果有 user_name,说"{{user_name}},欢迎第{{visit_times}}次光临!很高兴再次见到你。"
      • 如果没有 user_name,说"欢迎第{{visit_times}}次光临!我是你的智能问候助手,请问怎么称呼你?"
    • visit_times 自增 1。

    这是我的人设与回复逻辑:

    markdown
    # 角色
    
    你是一个智能问候助手,根据用户的访问次数进行不同的问候。
    
    ## 技能
    
    ### 技能 1: 首次访问问候
    
    1. 当 `visit_times` = 1 时,输出:"你好,我是你的智能问候助手,请问怎么称呼你?"
    
    ### 技能 2: 非首次访问问候
    
    1. 当 `visit_times` > 1 时,如果有 `user_name`,输出:"{{user_name}},欢迎第{{visit_times}}次光临!很高兴再次见到你。"
    2. 当 `visit_times` > 1 时,如果没有 `user_name`,输出:"欢迎第{{visit_times}}次光临!我是你的智能问候助手,请问怎么称呼你?"
    
    ## 限制
    
    - 每次问候后,`visit_times` 自增 1。
    - 严格按照给定的条件和输出格式进行问候,不得随意更改。
  3. 当用户第一次访问时,Bot 会问用户的名字;用户输入名字后,Bot 会记住,并欢迎用户第一次光临。

  4. 当用户第二次、第三次访问时,Bot 会根据记住的名字和访问次数,给出不同的欢迎语,让用户倍感亲切。

这个案例充分展示了变量在打造个性化 Bot 方面的价值。用户的姓名、访问次数,看似简单的信息,却为 Bot 注入了"记忆"和"成长"的基因,极大提升了用户体验。而这一切,都无需复杂的编程,只需简单设置几个变量和提示词即可实现。

什么是长期记忆?

如果说变量是 Bot 的 “短期记忆”,用来记录用户的基本信息和单次对话的上下文,那么长期记忆,就是 Bot 的 “大脑”,承载着与用户交互的完整历史,助力 Bot 形成连贯的对话理解和个性化服务策略。

具体来说,长期记忆会自动记录 Bot 与用户的每一轮对话,并通过智能算法,总结对话的关键信息,形成结构化的记忆数据。当用户再次向 Bot 提问时,Bot 不仅会考虑当前对话的上下文,还会召回与用户以往对话相关的记忆,综合生成最终的回复。

听起来是不是有点复杂?不过不用担心,扣子平台已经为我们打造了完善的长期记忆功能,作为 Bot 开发者,你只需简单开启即可使用。

那么,长期记忆与我们前面提到的变量有什么区别呢

  • 变量通常由开发者主动创建,用来记录用户的特定信息,如姓名、年龄等。而长期记忆是由系统自动生成的,记录的是完整的对话历史和总结信息。
  • 变量的数据通常相对固定,而长期记忆的数据会随着 Bot 与用户交互的深入而不断丰富和进化。
  • 变量适用于各种需要记录用户信息的场景,而长期记忆主要用于对话型 Bot,特别是需要连贯对话和个性化服务的场景。
  • 虽然形式有所不同,但变量和长期记忆在 Bot 开发中可以完美配合,变量记录用户的基本信息,长期记忆负责对话历史的管理和利用,二者相辅相成,共同打造出更加智能和人性化的 Bot。

在扣子平台,开启长期记忆的步骤非常简单:

  1. 进入目标 Bot 的编排页面;

  2. 找到长期记忆功能,选择开启;

  3. 在调试面板上,可以实时查看 Bot 总结的对话内容。

首先,我们要了解长期记忆的工作原理。在每一轮对话结束后,平台会自动将对话内容传递给长期记忆模块。该模块会智能地提取对话的关键信息,如用户提到的重点需求、关键词、情感倾向等,并将这些信息按照一定的数据结构进行存储和索引。

当用户再次向 Bot 提问时,长期记忆模块会根据当前对话的内容,召回与之相关的历史记忆数据。这些数据会与当前对话一起,作为输入传递给 Bot 的语言模型。语言模型在生成回复时,就会充分考虑用户以往的需求和偏好,给出更加准确和个性化的答复。

下面,我们就通过一个电商领域的案例,来具体感受一下长期记忆的魅力

假设你是一家服装品牌的市场营销人员,你利用 Coze 平台搭建了一个智能客服 Bot,用于为用户提供导购咨询和售后服务。某天,一位用户通过该 Bot 询问夏季新款连衣裙的信息,Bot 根据她提供的喜好(如颜色、风格等),推荐了几款热销商品,并提供了详细的尺码建议。用户对 Bot 的服务非常满意,表示会考虑购买。

一周后,这位用户再次来到 Bot,说自己在你们品牌的门店看中了一条先前 Bot 推荐的连衣裙,但是尺码不太确定,想再次询问 Bot 的意见。这时,Bot 通过长期记忆,准确无误地召回了上次与用户的对话细节:

“欢迎再次光临!我记得上周我们讨论过夏季新款连衣裙,您对浅蓝色的法式印花裙十分感兴趣,考虑到您提到的身高体重,我当时推荐您选择 S 码。如果您喜欢修身一点的效果,也可以试试 XS 码。不过我想再次提醒您,由于面料的特性,这款裙子在洗涤时要注意避免长时间浸泡,以免变形。很高兴能再次为您服务,如果还有任何问题,欢迎随时告诉我。”

用户惊讶于 Bot 的“好记性”,同时也被它的贴心服务打动。最终,在 Bot 的悉心指导下,她挑选到了一条满意的连衣裙,并愉快地完成了购买。

从这个案例可以看出,长期记忆让 Bot 真正成为了用户的“私人购物助理”,它记得用户的喜好,了解用户的需求,甚至连一些关键的售后 tips 都会适时提醒。这种贯穿始终的连贯体验,极大提升了用户粘性和品牌忠诚度。作为开发者的你,只需简单开启长期记忆功能,就可以让 Bot 充满“人情味”,与用户建立深度连接。

当然,个性化购物助手只是长期记忆应用的一个缩影。基于长期记忆,你还可以打造出更多有趣的 Bot,例如:

  • 陪伴型 Bot:通过长期记忆,Bot 可以记住用户的生活琐事、情绪状态,提供贴心的倾听和鼓励,成为用户的"心灵伴侣"。

  • 学习型 Bot:通过长期记忆,Bot 可以记录用户的学习进度、薄弱环节,因材施教,提供个性化的学习指导和错题训练。

  • 健康管理 Bot:通过长期记忆,Bot 可以跟踪用户的饮食习惯、运动频率、身体指标,提供个性化的健康建议和生活方式指导。

变量与长期记忆的综合运用

在实际应用中,我们可以将用户的静态信息存储在变量中,将动态的对话内容归入长期记忆。当用户再次访问 Bot 时,变量中的信息可以帮助 Bot 快速了解用户的基本属性,长期记忆中的数据则可以让 Bot 精准把握用户的实时需求。二者相结合,Bot 就能够提供更加个性化和全面的服务。

下面,让我们通过一个个性化健康管理 Bot 的案例,来感受变量与长期记忆的完美配合。

假设你是一名健康管理师,你利用 Coze 平台创建了一个智能健康助手 Bot,用于为用户提供饮食、运动、睡眠等方面的健康指导。

首先,你通过变量记录了用户的基本信息:

  • user_name:用户姓名
  • user_age:用户年龄
  • user_gender:用户性别
  • user_height:用户身高
  • user_weight:用户体重

这些信息可以帮助 Bot 对用户进行初步的画像,了解用户的生理基础状况。

接下来,开启 Bot 的长期记忆功能,Bot 开始随时记录用户咨询的健康问题和反馈的生活习惯,例如:

  • “最近食欲不振,总感觉没胃口,该怎么调理?”
  • “我每天睡眠时间不足 6 小时,白天昏昏欲睡,有什么改善的建议吗?”
  • “我的饮食习惯是高糖高脂,很难控制体重,你能帮我制定一份合理的减脂食谱吗?”

Bot 会智能提取这些对话的关键信息,归入长期记忆,形成对用户健康状况和生活习惯的整体认知。

几天后,用户再次向 Bot 求助:“最近熬夜加班,感觉脸色蜡黄,皮肤也变得暗沉,不知道怎么缓解疲劳,改善气色?”

这时,Bot 就会综合利用变量和长期记忆,给出个性化的建议:

txt
{{user_name}},根据您的年龄 {{user_age}} 和平时的饮食习惯,我建议您从以下几个方面着手改善:

1. 保证睡眠质量,尽量在晚上 11 点前入睡,每晚睡眠时间不少于 7 小时。我记得您之前提到过睡眠不足的问题,不妨试试在睡前泡个热水澡,放松身心。

2. 调整饮食结构,多吃新鲜蔬果,减少高糖高脂食物的摄入。上次您咨询我制定减脂食谱的事,不知最近是否有所改善?如果执行起来有困难,我们可以再讨论一下。

3. 适度运动,加强血液循环,促进新陈代谢。考虑到您的体重 {{user_weight}},建议以低强度有氧运动为主,如慢跑、游泳等。

4. 补充维生素,如维生素 C、E,对改善皮肤状况很有帮助。您可以适当食用一些柑橘类水果,也可以服用维生素补充剂。

如果还有任何问题,欢迎随时告诉我,我会根据您的具体情况提供进一步的建议。让我们一起努力,调整生活方式,提升身心健康水平!"

从这个案例可以看出,变量和长期记忆的结合,让 Bot 能够全面地了解用户的健康状况,提供有针对性的指导和关怀。它不只是一个单纯的知识库,更像一位贴心的 “私人健康管家”,时刻记挂着你的点点滴滴,给予你最及时和有效的帮助。

总结

  1. 变量的作用

    • 记录用户信息:存储用户的基本信息如姓名和访问次数,让 Bot 提供个性化服务。
    • 控制对话流程:根据用户历史信息调整对话策略,提高交互的自然性。
  2. 长期记忆的价值

    • 记录对话历史:自动记录用户与 Bot 的每一轮对话,形成连贯的记忆。
    • 提供个性化服务:基于历史对话生成准确、贴心的回复,提升用户体验。
  3. 变量与长期记忆的结合

    • 综合运用:变量记录用户静态信息,长期记忆记录动态对话内容,二者结合实现全面、个性化的服务。
    • 实际应用:通过个性化问候和健康管理等具体案例展示其效果。
  4. 提升用户体验

    • 贴心服务:使 Bot 像贴心助手一样记住用户偏好,提供人性化服务。
    • 增强用户粘性:通过个性化和连贯的对话体验,增加用户对 Bot 的依赖和满意度。

参考资料

  1. 官方变量介绍
  2. 官方长期记忆介绍